Excel VBA Parts Collection | Home | Excel Reference Manual | DownLoad | My Profile | |
Menu | Next | Links | Excel Function Manual | Myself | BBS |
上図は、Excel2002のVBE画面です。VBEは、大きく分けると画面上部にあるメニュー部とその下のウインドウ表示部で構成されています。画面各部の名称とその機能は下表のとおりです。
メニュー部 | |
タイトルバー | 画面最上部は「タイトルバー」といい、利用ソフト名、プロジェクト名、オブジェクト名が表示されます。 |
メニューバー | メニューが文字で書かれている部分です。 タイトルバーの右端部分はExcelと同じように、「最小化」「元に戻す(縮小)」「閉じる」の各ボタンが配置されています。 |
ツールバー | アイコンボタンが並んでいる部分がツールバーです。 |
ウインドウ表示部 | |
プロジェクト エクスプローラ |
現在開かれているプロジェクト(ブック)の一覧、および各プロジェクトに含まれているワークシート、フォーム、モジュールなどのオブジェクトを階層的に表示し、管理するツールです。 |
プロパティ ウインドウ |
選択されたオブジェクト、フォームまたはコントロールの様々なプロパティの設定可能な項目を設定・表示・変更するウインドウです。 |
コード ウインドウ |
コードを記述し、表示・編集するためのウインドウです。コードはモジュールをここに表示して記述しますが、モジュールには「標準モジュール」「クラスモジュール」の他、「ワークシート」「フォーム」に付属するモジュールがあります。 |
イミディエイト ウインドウ |
このウインドウ内でコードを入力し、「Enter」キーを押すと、そのコードを直接実行することができます。 |
ローカル ウインドウ |
実行中のマクロで宣言されているすべての変数とその値を自動的に表示します。 |
ウオッチ ウインドウ |
プログラムでウオッチ式が定義されると自動的に表示され、変数の値や式の値を確認することができます。 |
1 アイコンボタン
図の左上にアイコンボタンが3つ並んでいますが、それぞれの名称は、左から「コードの表示」「オブジェクトの表示」「フォルダの切り替え」です。
(1) コードの表示
ワークシートオブジェクト、ThisWorkbook、ユーザーフォーム、標準モジュールのどれかをクリックしてから「コードの表示ボタン」をクリックすると、該当のモジュールが表示されます。
なお、該当のオブジェクトをダブルクリックすることによってもコードを表示することができます。
(2) オブジェクトの表示
ユーザーフォームが作成されているときに、ワークシートオブジェクトをクリックしてから「オブジェクトの表示」ボタンをクリックすると、Excel画面に切り換わってワークシートが表示されます。また、ユーザーフォームをクリックしてから「オブジェクトの表示」ボタンをクリックすると、コードウインドウにユーザーフォームが表示されます。
(3) フォルタの切り替え
「フォルダの切り替え」ボタンをクリックすると、プロジェクトエクスプローラでのオブジェクトの表示方法が変わります。
フォルダマークの左にある「-」「+」のマークをクリックすると、フォルダ内のオブジェクトが表示されたり、非表示になったりします。
|
|
|
2 モジュールの構成
モジュールとは、VBAのコード(プログラム)を記録する場所のことをいい、上図のようにモジュールの最上部に変数が宣言される領域のことを特に宣言セクション(変数宣言領域)と呼んでいます。
(1) 変数宣言領域
変数はその種類と記述された場所により有効範囲が異なります。宣言セクションは、複数のプロシージャに有効な変数の使用を宣言する領域で、モジュールの最上部に変数の宣言を行います。
なお、宣言領域は予め範囲が決まっているわけではなく、最初のプロシージャの上に変数の宣言が行なわれた領域という意味に解すればいいでしょう。
この領域で DIM
変数を使用すると記述されたモジュール内のすべてのプロシージャで有効となり(モジュールレベル変数)、Public
変数を使用するとプロジェクト(ブック)内のすべてのプロシージャが有効範囲となります(プロジェクトレベル変数)。
変数の適用範囲と有効期間については次項で詳しく説明しますので参照してください。
(2) プロシージャ領域
上図の「Sub Progn( ) ・・・ End Sub」と書かれている部分がプロシージャです。
3 プロシージャの構成
プロシージャは、1つのプログラムのまとまりをいい、「Sub <マクロ名> ( )」で始まり、「End Sub」で終わります。上図では、罫線の下から次の罫線までの間が1つのプロシージャに相当します。
マクロ名の右にある ( )
は、他のプロシージャとの間で変数などの受渡しがあるときに、該当の変数などを指定する場所で、通常は
( ) 内には何も記述しません。
4 プロシージャの作成方法
プロシージャを作成するには、[プロシージャの追加] ダイアログ ボックスを使用する場合と、手入力でコードを記述して作成する場合の2つの方法があります。
(1) [プロシージャの追加] ダイアログ ボックスを使用してプロシージャを作成する
・プロシージャを記述するモジュールを開きます。
・VBEの[挿入] メニューの [プロシージャ] をクリックします。
・[プロシージャの追加] ダイアログ ボックス(下図)の [名前] ボックスにプロシージャの名前を入力します。
|
項目名 | 設 定 内 容 | |
名 前 | プロシージャの名前をボックスに入力します。 | |
種 類 | 作成するプロシージャの種類を指定します。 | |
Sub プロシージャ | Sub プロシージャを新規作成します。 | |
Function プロシージャ | Function プロシージャを新規作成します。 | |
Property プロシージャ | Let プロパティと Get プロパティのペアのプロシージャを新規作成します。 | |
適用範囲 | プロシージャの適用範囲を Public または Private に設定します。 | |
すべてのローカル変数を Static にする・・・・・チェックボックスをオンにすると、プロシージャ定義に Static キーワードを追加します。 |
上記により、作成したプロシージャ(名前を「Test1」とした。)
Public Sub Test1()
(
ここに処理を行うコードを記述します )
End Sub
(2) コードを記述してプロシージャを作成する
下記では、Sub プロシージャの作成方法を説明します。(名前を「Test2」とする。)
・プロシージャを記述するモジュールを開きます。
・「Sub」に続けて半角スペースを1字分入力し、マクロ名を入力後、リターンキーを押すだけです。
・自動的にマクロ名の次に ( )
が表示され、空白行が1行分挿入された下に「 End Sub」 を表示します。
上記により、作成したプロシージャ
Sub Test2()
(
ここに処理を行うコードを記述します )
End Sub
5 マクロ名と変数の名前付け規則
モジュールで、プロシージャ、定数、変数に名前を付ける場合、次の規則に従います。
・名前の先頭は文字でなければなりません。
・名前にはスペース、ピリオド (.)、感嘆符 (!)、および @、&、$、# などの文字を使うことはできません。
・名前は 255 文字 (半角の場合) 以内でなければなりません。
・関数、ステートメント、およびメソッドと同じ名前を使うことはできません。
・同じレベルの適用範囲内で、同じ名前を使用することはできません。
・通常、大文字と小文字は区別されませんが、名前を宣言するステートメントの大文字は保持されます。
6 複数行のステートメントの作成
ステートメント(処理を記述するコード)は、通常、1 行に記述できますが、行継続文字を使用してステートメントを次の行に続けることができます。
行継続文字の利用方法は、次行に分割したいコードの位置に半角スペースを1字分入力してから「
_ (アンダースコア)」を入力し、リターンキーを押します。
元のコード
Sub Test3()
Worksheets("Sgeet1").Range("A1").Sort Key1:=Range("A2"),Order1:=xlDescending,Key2:=Range("B2"),Order2:=xlDescending,Header:=xlGuess, OrderCustom:=1, MatchCase:=False,Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub
行継続文字の使用例
Sub Test3()
Worksheets("Sgeet1").Range("A1").Sort _
Key1:=Range("A2"),Order1:=xlDescending, _
Key2:=Range("B2"),Order2:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub